package com.cby.lib.tool;

import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;

import com.cby.lib.tool.ui.CbyToolActivity;
import com.cby.lib.tool.widget.floating.FloatWindow;
import com.cby.lib.tool.widget.floating.PermissionListener;
import com.cby.lib.tool.widget.floating.Screen;
import com.cby.lib.tool.widget.floating.ViewStateListenerAdapter;

/**
 * @author ChenBaoyang
 * @description: CbyTool
 * @date 2021/11/11 11:16
 */
public class CbyTool {


    /**
     * 设置全局悬浮按钮，点击可以去网络列表页面
     * @param context                           上下文
     */
    public static void setFloat(Context context) {
        ImageView imageView = new ImageView(context.getApplicationContext());
        imageView.setImageResource(R.drawable.ic_show_error);
        FloatWindow
                .with(context)
                .setView(imageView)
                //设置悬浮控件宽高
                .setWidth(Screen.width, 0.2f)
                .setHeight(Screen.width, 0.2f)
                //设置控件初始位置
                .setX(Screen.width, 0.8f)
                .setY(Screen.height, 0.3f)
                //桌面显示
                .setDesktopShow(false)
                //设置这两个页面隐藏
                .setFilter(
                        false, CbyToolActivity.class
                ) //监听悬浮控件状态改变
                .setViewStateListener(new ViewStateListenerAdapter())
                //监听权限申请结果
                .setPermissionListener(new PermissionListener() {
                    @Override
                    public void onSuccess() {
                        Log.i("CbyTool","NetworkTool-------PermissionListener------onSuccess");
                    }

                    @Override
                    public void onFail() {
                        Log.i("CbyTool","NetworkTool-------PermissionListener------onFail");
                    }

                })
            .build();
            imageView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    start(context);
                }
            });
    }


    private static void start(Context context) {
        try {
            Intent intent = new Intent(context, CbyToolActivity.class);
            //为activity开启新的栈，Intent.FLAG_ACTIVITY_NEW_TASK 设置状态，
            //首先查找是否存在和被启动的Activity具有相同的任务栈，如果有则直接把这个栈整体移到前台，并保持栈中的状态不变，
            //既栈中的activity顺序不变，如果没有，则新建一个栈来存放被启动的Activity。
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
